Enquanto operações pontuais tratam cada elemento em um tensor independentemente, padrões de redução introduzem dependências de dados onde múltiplos elementos de entrada são colapsados em um único valor de saída (por exemplo, soma, máximo ou média). Para implementá-los com eficiência, é necessário preencher a lacuna entre a estrutura lógica 2D dos dados e sua representação linear na memória do hardware.
1. Mapeamento de Memória 2D
Tensores 2D são logicamente gradeados, mas fisicamente lineares na RAM. Compreender linha-principal vs. coluna-principal o layout é essencial para determinar se uma redução percorre endereços de memória contíguos ou exige acesso com passo.
2. Topologia Pontual vs. Redução
Uma cópia de matriz representa uma operação pontual com mapeamento $1:1$ de entrada para saída. Em contraste, uma redução é uma operação muitos-para-um ($N:1$) que exige acumulação compartilhada entre threads ou processamento sequencial dentro de um bloco.
3. Colapso da Dimensão
As reduções são definidas pela eixo da operação. Reduzir ao longo do eixo 1 (linhas) versus o eixo 0 (colunas) altera fundamentalmente os padrões de stride da memória e as taxas de acerto no cache do hardware.